package ejb.cbm.admin.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="ARCHIVO")
@SequenceGenerator(name="ARCHIVO_SEQ", sequenceName="SQ_ARCHIVO")
public class ArchivoEntity  implements java.io.Serializable {

     private Long codigoarchivo;
     private Long tipoarchivo;
     private String descripcion;
     private String nombrearchivo;
     private String extension;
     private String rutaentrada;
     private String rutasalida;
     private String tabla;
     private String sequence;
     private String correoelectronico;
     private Long flagactivo;
     private String programacionTipo;
     private String programacionMes;
     private String programacionDia;
     private String programacionHora;
     private String programacionMinuto;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;
     private List<ArchivoLayoutEntity> archivolayouts = new ArrayList<ArchivoLayoutEntity>(0);

    // Constructors

    /** default constructor */
    public ArchivoEntity() {
    }

	/** minimal constructor */
    public ArchivoEntity(Long codigoarchivo, Long tipoarchivo, String nombrearchivo, String extension, String tabla, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.codigoarchivo = codigoarchivo;
        this.tipoarchivo = tipoarchivo;
        this.nombrearchivo = nombrearchivo;
        this.extension = extension;
        this.tabla = tabla;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public ArchivoEntity(Long codigoarchivo, Long tipoarchivo, String descripcion, String nombrearchivo, String extension, String rutaentrada, String rutasalida, String tabla, String sequence, String correoelectronico, Long flagactivo, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion, List<ArchivoLayoutEntity> archivolayouts) {
        this.codigoarchivo = codigoarchivo;
        this.tipoarchivo = tipoarchivo;
        this.descripcion = descripcion;
        this.nombrearchivo = nombrearchivo;
        this.extension = extension;
        this.rutaentrada = rutaentrada;
        this.rutasalida = rutasalida;
        this.tabla = tabla;
        this.sequence = sequence;
        this.correoelectronico = correoelectronico;
        this.flagactivo = flagactivo;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
        this.archivolayouts = archivolayouts;
    }

   
    // Property accessors
    @Id
    @Column(name="CODIGOARCHIVO", unique=true, nullable=false, insertable=true, updatable=true, precision=8, scale=0)
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ARCHIVO_SEQ")
    public Long getCodigoarchivo() {
        return this.codigoarchivo;
    }
    
    public void setCodigoarchivo(Long codigoarchivo) {
        this.codigoarchivo = codigoarchivo;
    }
    
    @Column(name="TIPOARCHIVO", unique=false, nullable=false, insertable=true, updatable=true, precision=1, scale=0)
    public Long getTipoarchivo() {
        return this.tipoarchivo;
    }
    
    public void setTipoarchivo(Long tipoarchivo) {
        this.tipoarchivo = tipoarchivo;
    }
  
    @Column(name="DESCRIPCION", unique=false, nullable=true, insertable=true, updatable=true, length=500)
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    
    @Column(name="NOMBREARCHIVO", unique=false, nullable=false, insertable=true, updatable=true, length=50)
    public String getNombrearchivo() {
        return this.nombrearchivo;
    }
    
    public void setNombrearchivo(String nombrearchivo) {
        this.nombrearchivo = nombrearchivo;
    }
    
    @Column(name="EXTENSION", unique=false, nullable=false, insertable=true, updatable=true, length=50)
    public String getExtension() {
        return this.extension;
    }
    
    public void setExtension(String extension) {
        this.extension = extension;
    }
    
    @Column(name="RUTAENTRADA", unique=false, nullable=true, insertable=true, updatable=true, length=200)
    public String getRutaentrada() {
        return this.rutaentrada;
    }
    
    public void setRutaentrada(String rutaentrada) {
        this.rutaentrada = rutaentrada;
    }
    
    @Column(name="RUTASALIDA", unique=false, nullable=true, insertable=true, updatable=true, length=200)
    public String getRutasalida() {
        return this.rutasalida;
    }
    
    public void setRutasalida(String rutasalida) {
        this.rutasalida = rutasalida;
    }
    
    @Column(name="TABLA", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getTabla() {
        return this.tabla;
    }
    
    public void setTabla(String tabla) {
        this.tabla = tabla;
    }
    
    @Column(name="SEQUENCE", unique=false, nullable=true, insertable=true, updatable=true, length=30)
    public String getSequence() {
        return this.sequence;
    }
    
    public void setSequence(String sequence) {
        this.sequence = sequence;
    }
    
    @Column(name="CORREOELECTRONICO", unique=false, nullable=true, insertable=true, updatable=true, length=500)
    public String getCorreoelectronico() {
        return this.correoelectronico;
    }
    
    public void setCorreoelectronico(String correoelectronico) {
        this.correoelectronico = correoelectronico;
    }
    
    @Column(name="FLAGACTIVO", unique=false, nullable=true, insertable=true, updatable=true, precision=1, scale=0)
    public Long getFlagactivo() {
        return this.flagactivo;
    }
    
    public void setFlagactivo(Long flagactivo) {
        this.flagactivo = flagactivo;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }
    
    @OneToMany(fetch=FetchType.LAZY, mappedBy="archivo")
    public List<ArchivoLayoutEntity> getArchivolayouts() {
        return this.archivolayouts;
    }
    
    public void setArchivolayouts(List<ArchivoLayoutEntity> archivolayouts) {
        this.archivolayouts = archivolayouts;
    }

	public void setProgramacionTipo(String programacionTipo) {
		this.programacionTipo = programacionTipo;
	}

    @Column(name="PROGRAMACION_TIPO")
	public String getProgramacionTipo() {
		return programacionTipo;
	}

	public void setProgramacionMes(String programacionMes) {
		this.programacionMes = programacionMes;
	}

    @Column(name="PROGRAMACION_MES")
	public String getProgramacionMes() {
		return programacionMes;
	}

	public void setProgramacionDia(String programacionDia) {
		this.programacionDia = programacionDia;
	}

    @Column(name="PROGRAMACION_DIA")
	public String getProgramacionDia() {
		return programacionDia;
	}

	public void setProgramacionHora(String programacionHora) {
		this.programacionHora = programacionHora;
	}

    @Column(name="PROGRAMACION_HORA")
	public String getProgramacionHora() {
		return programacionHora;
	}

	public void setProgramacionMinuto(String programacionMinuto) {
		this.programacionMinuto = programacionMinuto;
	}

    @Column(name="PROGRAMACION_MINUTO")
	public String getProgramacionMinuto() {
		return programacionMinuto;
	}
}